IF exists(SELECT * FROM dbo.sysobjects WHERE name='r_XMLmaandrapportCijfers' AND xtype='P') 
BEGIN
	DROP PROCEDURE r_XMLmaandrapportCijfers
END
GO

CREATE        procedure r_XMLmaandrapportCijfers(@inschrijvingsNr char(7), @jaar int)
as
set nocount on

-----------------  VOORAF  -----------------------------------
set @jaar = isNull(@jaar,0)
set @inschrijvingsNr = isNull(@inschrijvingsNr,'')
declare @achternaam varchar(50), @voornaam varchar(50), @klas varchar(5)
select @achternaam = achternaam, 
	@voornaam = voornaam,
	@klas = klas
from leerlingen..leerlingen 
where inschrijvingsnr = @inschrijvingsnr

set @achternaam = isNull(@achternaam,'')
set @voornaam = isNull(@voornaam,'')
set @klas = isNull(@klas,'')

create table #tussen( tekst varchar(255))
create table #vakken( volgNummer char(2),vak char(2),vaknaam varchar(50))
create table #groepen(groepscode varchar(5))

-- De vakken worden ingevuld:

insert into #vakken(volgNummer,vak,vaknaam)
select distinct volgnummer,vakcode,vaknaam
  from leraars.dbo.alleIndividueleVakcodes(@inschrijvingsNr)
  order by volgnummer

-----------------  OPBOUW DOCUMENT  -----------------------------------
insert into #tussen(tekst)
values('<?xml version="1.0"  encoding="ISO-8859-1" ?>')

-- De juiste stijl-pagina wordt aan de XML-pagina gelinkt.
	declare @letter char(1)
	if left(@klas,1) = '6' set @letter = '3'
	if left(@klas,1) = '5' set @letter = '4'
	if left(@klas,1) < '5' set @letter = '5'

insert into #tussen(tekst)
values('<?xml-stylesheet type="text/xsl" href="maandrapport' + isNull(@letter,0) + '.xsl" ?>')
insert into #tussen(tekst)
values('<maandRapport><hoofding>')
insert into #tussen(tekst)
values('<titel>' + @voorNaam + ' ' + @achternaam + ' maandrapporten </titel>')
insert into #tussen(tekst)
values('<leerling>' + @voorNaam + ' ' + @achternaam + '</leerling>')
insert into #tussen(tekst)
values('<comBestand>' + @inschrijvingsNr + 'c.xml</comBestand>')
insert into #tussen(tekst)
values('<periode>Maandrapporten' 
	+ ' - Schooljaar ' + convert(varchar(4),@jaar) + ' - ' +
	+ convert(varchar(4),@jaar + 1) + '</periode>')
insert into #tussen(tekst)
values('</hoofding><vakken>')

--------------------------------------------------------------
--  Opbouw vakresultaten
--------------------------------------------------------------
  insert into #tussen(tekst)
  select '<vak naam="' + v.vaknaam + '"><periode nr="1"><c>' 
	+ case when p.procent1 is not null and (p.procent1 >= 0) 
	       then convert(varchar(5),p.procent1) else '' end 
	+ '</c></periode>'
 	+ '<periode nr="2"><c>' 
	+ case when procent2 is not null and (procent2 >= 0) 
	       then convert(varchar(5),procent2) else '' end 
	+ '</c></periode>'
	+ '<periode nr="3"><c>' 
	+ case when procent3 is not null and (procent3 >= 0) 
	       then convert(varchar(5),procent3) else '' end 
	+ '</c></periode>'
	+ '<periode nr="4"><c>' 
	+ case when procent4 is not null and (procent4 >= 0) 
	       then convert(varchar(5),procent4) else '' end 
	+ '</c></periode>'
	+ '<periode nr="5"><c>' 
	+ case when procent5 is not null and (procent5 >= 0) 
	       then convert(varchar(5),procent5) else '' end 
	+ '</c></periode></vak>'
  from #vakken as v 
	left join (select * from r_maandcijfersVoorRapport 
	where inschrijvingsNr = @inschrijvingsNr) as p
	on v.vak = p.vakcode
  order by v.volgNummer

  -- De leerlingtotalen worden ingevoegd
  insert into #tussen(tekst)
  values ('<totaal>')

  insert into #tussen(tekst)
  select '<periode nr="1"><c>' 
	+ case when procent1 is not null and (procent1 >= 0) 
	       then convert(varchar(5),procent1) else '' end 
	+ '</c></periode>'
 	+ '<periode nr="2"><c>' 
	+ case when procent2 is not null and (procent2 >= 0) 
	       then convert(varchar(5),procent2) else '' end 
	+ '</c></periode>'
	+ '<periode nr="3"><c>' 
	+ case when procent3 is not null and (procent3 >= 0) 
	       then convert(varchar(5),procent3) else '' end 
	+ '</c></periode>'
	+ '<periode nr="4"><c>' 
	+ case when procent4 is not null and (procent4 >= 0) 
	       then convert(varchar(5),procent4) else '' end 
	+ '</c></periode>'
	+ '<periode nr="5"><c>' 
	+ case when procent5 is not null and (procent5 >= 0) 
	       then convert(varchar(5),procent5) else '' end 
	+ '</c></periode>'
   from r_maandtotaalVoorRapport where inschrijvingsNr = @inschrijvingsNr

   insert into #tussen(tekst)
   values ('</totaal>')

  -- De klasgemiddeldes worden ingevoegd
  insert into #tussen(tekst)
  values ('<gemiddelde>')

  insert into #tussen(tekst)
  select '<periode nr="1"><c>' 
	+ case when gemiddelde1 is not null and (gemiddelde1 >= 0) 
	       then convert(varchar(5),gemiddelde1) else '' end 
	+ '</c></periode>'
 	+ '<periode nr="2"><c>' 
	+ case when gemiddelde2 is not null and (gemiddelde2 >= 0) 
	       then convert(varchar(5),gemiddelde2) else '' end 
	+ '</c></periode>'
	+ '<periode nr="3"><c>' 
	+ case when gemiddelde3 is not null and (gemiddelde3 >= 0) 
	       then convert(varchar(5),gemiddelde3) else '' end 
	+ '</c></periode>'
	+ '<periode nr="4"><c>' 
	+ case when gemiddelde4 is not null and (gemiddelde4 >= 0) 
	       then convert(varchar(5),gemiddelde4) else '' end 
	+ '</c></periode>'
	+ '<periode nr="5"><c>' 
	+ case when gemiddelde5 is not null and (gemiddelde5 >= 0) 
	       then convert(varchar(5),gemiddelde5) else '' end 
	+ '</c></periode>'
   from r_maandtotaalVoorRapport where inschrijvingsNr = @inschrijvingsNr

   insert into #tussen(tekst)
   values ('</gemiddelde>')



  insert into #tussen(tekst)
  values ('</vakken>')

  -- Afsluiting

  insert into #tussen(tekst)
  values('</maandRapport>')

select * from #tussen